/***************************************************
> Copyright (C) 2023 ==lv== All rights reserved.
> File Name: threadpool.h
> Author: lv
> Mail:joseph2009@163.com 
> Created Time: 2023年12月09日 星期六 14时51分57秒
***************************************************/

#ifndef _THREADPOOL_H_
#define _THREADPOOL_H_


#include <pthread.h>
#include <semaphore.h>
#include <stdio.h>
#include <unistd.h>
#include "queue.h"


typedef struct threadpool
{
	sem_t rsem;//读信号量，控制消费者线程
	sem_t wsem;//写信号量，控制产生着线程
	pthread_mutex_t mutex;//控制多个线程互斥访问队列
	int max_tasks;//队列中最大任务数量
	Queue *que;//任务队列
	int threads;//线程池中线程数量
	pthread_t *tids;//存放线程 id 的数组
}threadPool;
void*cousumer(void*arg);
//线程池的初始化
threadPool* createThreadPool(int thread_count,int queue_max_deep);
//线程的销毁函数
void destroyThreadPool(threadPool *pool);
#endif
